import _ from 'lodash';
import Json from '../util/json';
import cfg from '../../etc/dbms';

class Connection extends Json {
    check(data) {
        if (_.isEmpty(data)) {
            return '没有提供连接参数';
        }
        const conn = _.reduce(data, (result, value, key) => {
            // 去除所有的string两头的空白
            if (typeof value === 'string') {
                result[key] = _.trim(value);
            } else result[key] = value;
            return result;
        }, {});

        if (_.isEmpty(conn.name)) {
            return '没有提供名称';
        }
        if (_.isEmpty(conn.host)) {
            return '没有服务器地址';
        }
        if (_.isEmpty(conn.username)) {
            return '没有用户名';
        }
        conn.port = parseInt(conn.port);
        if (!Number.isInteger(conn.port)) {
            return '服务器端口非法';
        }
        return conn;
    }
}

export default new Connection(cfg.file, 'name', '数据库连接配置');
